<template>
    <div>
        <span>姓名</span>
        <el-input v-model="username" placeholder='请输入用户名' style='width: 60%;'></el-input>
        <el-button type="primary" @click="query" style="margin-left: 8px;">查询</el-button>
        <el-button type="primary" @click="showAdd" style="margin-left: 8px">新增</el-button>

        <el-table :data="tableData" style="width: 100%">
        <el-table-column prop="username" label="姓名" width="180">
        </el-table-column>
        <el-table-column prop="age" label="年龄" width="180">
        </el-table-column>
        <el-table-column prop="phone" label="电话">
        </el-table-column>
        <el-table-column prop="mail" label="邮箱">
        </el-table-column>
         <el-table-column fixed="right" label="操作" width="100">
                <template slot-scope="scope">
                    <el-button @click="showEdit(scope.row)" type="text" size='small'>编辑</el-button>
                    <el-popconfirm
                        title="这是一段内容确定删除吗？"
                        @confirm="del(scope.row)">
                        <el-button slot="reference" type="text">删除</el-button>
                        </el-popconfirm>
                </template>
            </el-table-column>
    </el-table>
    <el-dialog :title="titleName" :visible.sync="dialogVisible" width="50%" :before-close="handleClose">
        <el-form ref="form" :model="form" label-width="80px">
            <el-form-item label="姓名"  prop="username">
                <el-input v-model="form.username"></el-input>
                </el-form-item>
                <el-form-item label="邮箱" prop="mail">
                <el-input v-model="form.mail"></el-input>
            </el-form-item>
            <el-form-item label="手机号" prop="phone">
                <el-input v-model="form.phone"></el-input>
            </el-form-item>
            <el-form-item label="年龄" prop="age">
                <el-input v-model="form.age"></el-input>
            </el-form-item>
        </el-form>
        <span slot="footer" class="dialog-footer">
            <el-button @click="dialogVisible = false">取 消</el-button>
            <el-button type="ptimary" @click="insertUser">确 定</el-button>
        </span>
    </el-dialog>
    </div>
</template>

<script>
import { getUserAll, getUserByName, addUser, updateUser, delUser } from '../api/data.js';
export default {
    name:'pages2',
    data() {
        return {
            tableData: [],
            username: '',
            dialogVisible: false,
            form: {
                username: '',
                phone: '',
                mail: '',
                age: '',
            },
            titleName: '新增',
            visible:false,
            rules:{
                username:[
                    {required:true,message:'请输入用户名称',trigger:'blur'},
                    {min:2,max:5,message:"长度在二到五个字符",trigger:'blur'}
                ],
                mail:[{required:true,message:'请输入邮箱',trigger:'blur'}],
                phone:[{required:true,message:'请输入电话号码',trigger:'blur'}],
                age:[{required:true,message:'请输入用户年龄',trigger:'blur'}]
            }
        }
    },
    mounted() {
        getUserAll().then(
            res => {
                console.log("获取全部用户", res);
                this.tableData = res.data;
            }
        );
    },
    methods: {
        query() {
            if (this.username == '') {
                getUserAll().then(
                    res => {
                        console.log("获取全部用户", res);
                        this.tableData = res.data;
                    }
                )
            } else {
                getUserByName(
                    {
                        username: this.username,
                    }
                ).then(
                    res => {
                        console.log("通过用户名获取", res);
                        this.tableData = [];
                        this.tableData.push(res.data);
                    }
                )
            }
        },
        getUser(){
            getUserAll().then(
                res => {
                    console.log('getUserInfo', res);
                    this.tableData = res.data;
                }
            )
        },
        showAdd() {
            this.dialogVisible = true;
            this.titleName = '新增';
        },
        handleClose(done) {
            this.$confirm("确认关闭？").then(_ => {
                    done();
                }
            ).catch(
                _ => {},
            );
        },
        insertUser(formName) {
        this.$refs[formName].validate((valid) => {
            if (valid) {
                if (this.titleName == '新增') {
                addUser(this.form).then(res => {
                        console.log('新增用户', res);
                        if (res.data == '新增成功') {
                            this.$message.success("新增成功");
                            getUserAll().then(
                                res => {
                                    console.log("获取全部用户", res);
                                    this.tableData = res.data;
                                }
                            )
                        } else {
                            this.$message.error("新增失败")
                        this.dialogVisible = false;
                   } }
                );
            } else {
                updateUser(this.form).then(
                    res => {
                        console.log("编辑返回", res)
                        if (res.data == '编辑成功') {
                            this.$message.success('编辑成功');
                            getUserAll().then(
                                res => {
                                    console.log('获取全部用户', res);
                                    this.tableData = res.data;
                                }
                            )
                        } else {
                            this.$message.console.error('编辑失败');
                        }
                        this.dialogVisible = false;
                    }
                );
            }
            } else {
                console.log('error submit!!');
                return false;
            }
            });
            
            
        },
        showEdit(row) {
            console.log("编辑信息", row);
            this.dialogVisible = true;
            this.titleName = '编辑';
            this.form.id = row.id;
            this.form.username = row.username;
            this.form.mail = row.mail;
            this.form.phone = row.phone;
            this.form.age = row.age;
        },
        //ii
        del(row){
             console.log("删除信息", row);
             delUser({id:row.id}).then(res=>{
                if(res.data=="删除成功"){
                    this.$message.success("删除成功")
                    getUserAll().then(
                                res => {
                                    console.log('获取全部用户', res);
                                    this.tableData = res.data;
                                }
                            )
             }
             else{
                this.message.error("删除失败")
             }

             })
        }
    }
}
</script>

<style>

</style>